package com.favoritemedium.util.geolocation;


/**
 * Implementation using the Law of Cosines 
 * 
 * @author F. Azzam
 *
 */
public class DistCalcLoC extends BaseDistCalc {
	
	public DistCalcLoC() {
	}

    /**
     * Calculate distance with the given latitude and longtitude of 2 locations.
     */ 
	public double calculateDistance(double lat1, double lon1, double lat2, double lon2, String unit) {
	  double theta = lon1 - lon2;
	  double dist = Math.sin(deg2rad(lat1)) * Math.sin(deg2rad(lat2)) + Math.cos(deg2rad(lat1)) * Math.cos(deg2rad(lat2)) * Math.cos(deg2rad(theta));
	  dist = Math.acos(dist);
	  dist = rad2deg(dist);
	  dist = dist * 60 * 1.1515;
	  if (unit == "K") {
	    dist = dist * 1.609344;
	  } else if (unit == "N") {
	  	dist = dist * 0.8684;
	    }
	  return (roundDouble(dist, 2));
	}
	
}
